package Entity;

import java.text.NumberFormat;

public class Scommessa implements Comparable {

    private int id;
    private String evento;
    private TipoScommessa tipo;
    private double quota;
    private double probabilita;

    public Scommessa(int p_id, double p_quota, String p_ev, TipoScommessa t) {
        id = p_id;
        setQuota(p_quota);
        setProbabilita(0.3);
        setEvento(p_ev);
        setTipo(t);
    }

    @Override
    public int compareTo(Object o) {
        return this.toString().compareTo(((Scommessa) (o)).toString());
    }

    public void print() {
        System.out.println(this.getEvento() + " " + this.getTipo() + " quota : " + this.getQuota() + " probabilità : "
                + NumberFormat.getInstance().format(this.getProbabilita() * 100) + "%");
    }

    public String toString() {
        if (this.getTipo() == null){
            return this.getEvento().trim();
        }
        return this.getEvento().trim() + "   " + this.getTipo().toString().trim();
    }

    public void setQuota(double quota) {
        this.quota = quota;
    }

    public double getQuota() {
        return quota;
    }

    public void setProbabilita(double probabilita) {
        this.probabilita = probabilita;
    }

    public double getProbabilita() {
        return probabilita;
    }

    public void setEvento(String evento) {
        this.evento = evento;
    }

    public String getEvento() {
        return evento;
    }

    public void setTipo(TipoScommessa tipo) {
        this.tipo = tipo;
    }

    public TipoScommessa getTipo() {
        return tipo;
    }

    public void calcolaProbabilita(double e, double f) {
        double max = this.quota;
        if (e > max) {
            max = e;
        }
        if (f > max) {
            max = f;
        }
        double p = max / this.quota;
        double pe = max / e;
        double pf = max / f;
        this.setProbabilita(p / (pe + pf + p));
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }
}
